home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / LinkMgr.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  6.5 KB  |  279 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:LinkMgr.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Theory of Operation
  13.  * 
  14.  * 
  15.  *  Classes defined in this interface
  16.  * 
  17.  */
  18.  
  19.  
  20. #ifndef SOM_ODLinkManager_xh
  21. #define SOM_ODLinkManager_xh
  22.  
  23. class ODLinkManager;
  24.  
  25. #define ODLinkManager_MajorVersion 0
  26. #define ODLinkManager_MinorVersion 0
  27.  
  28. /* C++ som defs */
  29. #include <somcls.xh>
  30.  
  31. /* Include C++ parent defs */
  32. #ifndef SOM_ODObject_xh
  33. #include <ODObject.xh>
  34. #endif
  35.  
  36. #ifndef ODLinkManager_API
  37. #define ODLinkManager_API
  38. /*
  39.  * -- The Class API
  40.  */
  41.  
  42. /*
  43.  * Start of user-defined types:
  44.  */
  45. class ODExtension;
  46. class ODStorageUnitCursor;
  47. class ODSession;
  48. class ODStorageUnitRefIterator;
  49. class ODLink;
  50. class ODPart;
  51. class ODStorageUnitView;
  52. class ODLinkSpec;
  53. class ODDocument;
  54. class ODDraft;
  55.  
  56. /*
  57.  * End of user-defined types.
  58.  */
  59.  
  60. #if applec ^ PRAGMA_LIB_EXPORT
  61. #pragma lib_export on
  62. #endif
  63.  
  64.  
  65. /* A procedure to create the ODLinkManager Class */
  66. SOMEXTERN SOMClass * SOMLINK ODLinkManagerNewClass(
  67.         integer4 majorVersion,
  68.         integer4 minorVersion);
  69.  
  70. /* The API to the ODLinkManager class object, and the methods it introduces. */
  71. typedef struct ODLinkManagerClassDataStructure {
  72.     SOMClass *classObject;
  73.     somMToken InitLinkManager;
  74.     somMToken NewSectionID;
  75.     somMToken ReserveSectionID;
  76.     somMToken UnsavedExportedLinks;
  77.     somMToken AnyLinkImported;
  78.     somMToken DraftOpened;
  79.     somMToken DraftSaved;
  80.     somMToken DraftClosing;
  81.     somMToken ExportOnSave;
  82.     somMToken CreateLink;
  83.     somMToken reserved1;
  84.     somMToken reserved2;
  85.     somMToken reserved3;
  86.     somMToken reserved4;
  87.     somMToken reserved5;
  88.     somMToken reserved6;
  89.     somMToken reserved7;
  90.     somMToken reserved8;
  91.     somMToken reserved9;
  92.     somMToken reserved10;
  93.     somMToken reserved11;
  94.     somMToken reserved12;
  95. } ODLinkManagerClassDataStructure;
  96. #ifdef SOM_NO_DATA_EXPORTS
  97.    SOMEXTERN ODLinkManagerClassDataStructure * ODLinkManagerGetClassData ( void );
  98. #   undef ODLinkManagerClassData
  99. #   define ODLinkManagerClassData (*ODLinkManagerGetClassData())
  100. #else
  101.    SOMEXTERN ODLinkManagerClassDataStructure ODLinkManagerClassData;
  102. #endif /* SOM_NO_DATA_EXPORTS */
  103.  
  104. #if applec ^ PRAGMA_LIB_EXPORT
  105. #pragma lib_export off
  106. #endif
  107.  
  108. #define _ODLinkManager ODLinkManagerClassData.classObject
  109.  
  110. /* The API to parentMtabs for ODLinkManager, and the instance data it introduces. */
  111. SOMEXTERN struct ODLinkManagerCClassDataStructure {
  112.     somMethodTabs parentMtab;
  113.     somDToken instanceDataToken;
  114. } ODLinkManagerCClassData;
  115.  
  116. /*
  117.  * -- Typedefs for Procedures that support Methods introduced by ODLinkManager
  118.  */
  119. SOMEXTERN {
  120. typedef void   (* SOMLINK somTD_ODLinkManager_InitLinkManager)(ODLinkManager *somSelf, Environment *ev,
  121.         ODSession* session,
  122.         ODHeap heap);
  123. typedef ODULong   (* SOMLINK somTD_ODLinkManager_NewSectionID)(ODLinkManager *somSelf, Environment *ev,
  124.         ODDocument* document);
  125. typedef ODBoolean   (* SOMLINK somTD_ODLinkManager_ReserveSectionID)(ODLinkManager *somSelf, Environment *ev,
  126.         ODULong sectionID,
  127.         ODDocument* document);
  128. typedef ODBoolean   (* SOMLINK somTD_ODLinkManager_UnsavedExportedLinks)(ODLinkManager *somSelf, Environment *ev,
  129.         ODDraft* draft);
  130. typedef ODBoolean   (* SOMLINK somTD_ODLinkManager_AnyLinkImported)(ODLinkManager *somSelf, Environment *ev,
  131.         ODDraft* draft);
  132. typedef void   (* SOMLINK somTD_ODLinkManager_DraftOpened)(ODLinkManager *somSelf, Environment *ev,
  133.         ODDraft* draft);
  134. typedef void   (* SOMLINK somTD_ODLinkManager_DraftSaved)(ODLinkManager *somSelf, Environment *ev,
  135.         ODDraft* draft);
  136. typedef void   (* SOMLINK somTD_ODLinkManager_DraftClosing)(ODLinkManager *somSelf, Environment *ev,
  137.         ODDraft* draft);
  138. typedef void   (* SOMLINK somTD_ODLinkManager_ExportOnSave)(ODLinkManager *somSelf, Environment *ev,
  139.         ODLink* link,
  140.         ODBoolean* doExport);
  141. typedef ODLink*   (* SOMLINK somTD_ODLinkManager_CreateLink)(ODLinkManager *somSelf, Environment *ev,
  142.         ODDraft* draft,
  143.         ODLinkSpec* linkSpec);
  144. }
  145.  
  146. #endif /* ODLinkManager_API */
  147.  
  148.  
  149. /*
  150.  * -- Method Tokens are Thunks
  151.  */
  152. #undef somresolve_
  153. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  154.  
  155. /*
  156.  * -- The C++ Wrapper Class for ODLinkManager
  157.  */
  158. class ODLinkManager : public ODObject
  159. {
  160. public:
  161.  
  162. void *operator new(size_t size)
  163. {
  164.    SOM_IgnoreWarning(size);
  165.    if (!ODLinkManagerClassData.classObject) 
  166.       ODLinkManagerNewClass(ODLinkManager_MajorVersion,ODLinkManager_MinorVersion);
  167.    return (void *)
  168.       ((somTD_SOMClass_somNew)
  169.       somresolve_((SOMObject *)((void*)(ODLinkManagerClassData.classObject)),
  170.                  SOMClassClassData.somNew))
  171.          ((SOMClass *)((void*)(ODLinkManagerClassData.classObject)));
  172. }
  173.  
  174. void operator delete(void * obj)
  175. {
  176.    ((SOMObject *)obj)->somFree();
  177. }
  178.  
  179. /* public method: InitLinkManager */
  180. void   InitLinkManager(Environment *ev,
  181.         ODSession* session,
  182.         ODHeap heap)
  183. {
  184.    SOM_Resolve(this,ODLinkManager,InitLinkManager)
  185.     (this,ev,session,heap);
  186. }
  187.  
  188.  
  189. /* public method: NewSectionID */
  190. ODULong   NewSectionID(Environment *ev,
  191.         ODDocument* document)
  192. {
  193.    return SOM_Resolve(this,ODLinkManager,NewSectionID)
  194.     (this,ev,document);
  195. }
  196.  
  197.  
  198. /* public method: ReserveSectionID */
  199. ODBoolean   ReserveSectionID(Environment *ev,
  200.         ODULong sectionID,
  201.         ODDocument* document)
  202. {
  203.    return SOM_Resolve(this,ODLinkManager,ReserveSectionID)
  204.     (this,ev,sectionID,document);
  205. }
  206.  
  207.  
  208. /* public method: UnsavedExportedLinks */
  209. ODBoolean   UnsavedExportedLinks(Environment *ev,
  210.         ODDraft* draft)
  211. {
  212.    return SOM_Resolve(this,ODLinkManager,UnsavedExportedLinks)
  213.     (this,ev,draft);
  214. }
  215.  
  216.  
  217. /* public method: AnyLinkImported */
  218. ODBoolean   AnyLinkImported(Environment *ev,
  219.         ODDraft* draft)
  220. {
  221.    return SOM_Resolve(this,ODLinkManager,AnyLinkImported)
  222.     (this,ev,draft);
  223. }
  224.  
  225.  
  226. /* public method: DraftOpened */
  227. void   DraftOpened(Environment *ev,
  228.         ODDraft* draft)
  229. {
  230.    SOM_Resolve(this,ODLinkManager,DraftOpened)
  231.     (this,ev,draft);
  232. }
  233.  
  234.  
  235. /* public method: DraftSaved */
  236. void   DraftSaved(Environment *ev,
  237.         ODDraft* draft)
  238. {
  239.    SOM_Resolve(this,ODLinkManager,DraftSaved)
  240.     (this,ev,draft);
  241. }
  242.  
  243.  
  244. /* public method: DraftClosing */
  245. void   DraftClosing(Environment *ev,
  246.         ODDraft* draft)
  247. {
  248.    SOM_Resolve(this,ODLinkManager,DraftClosing)
  249.     (this,ev,draft);
  250. }
  251.  
  252.  
  253. /* public method: ExportOnSave */
  254. void   ExportOnSave(Environment *ev,
  255.         ODLink* link,
  256.         ODBoolean* doExport)
  257. {
  258.    SOM_Resolve(this,ODLinkManager,ExportOnSave)
  259.     (this,ev,link,doExport);
  260. }
  261.  
  262.  
  263. /* public method: CreateLink */
  264. ODLink*   CreateLink(Environment *ev,
  265.         ODDraft* draft,
  266.         ODLinkSpec* linkSpec)
  267. {
  268.    return SOM_Resolve(this,ODLinkManager,CreateLink)
  269.     (this,ev,draft,linkSpec);
  270. }
  271.  
  272.  
  273.  
  274. };   /* ODLinkManager */
  275.  
  276.  
  277.  
  278. #endif       /* SOM_ODLinkManager_xh */
  279.